import java.util.Scanner;

public class Test1 {
    /**
     * 排序子序列问题解决方案
     *
     * 采用贪心算法思想，使每个有序子序列尽可能长
     *
     * 算法思路：
     * - 使用 tmp 变量记录前一个有序子序列的趋势符号（正/负）
     * - 当当前差值与前一个差值符号相反时，说明有序性被打破，需要开始新的子序列
     * - 遇到相等元素（差值为0）时跳过，不更新趋势符号
     * - 当趋势改变时，子序列计数器加1，并重置趋势符号为0（表示下一段序列趋势未定）
     *
     * @param args 命令行参数
     */

    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
        while (in.hasNextInt()) { // 注意 while 处理多个 case
            int n = in.nextInt();
            in.nextLine();
            int[] nums = new int[n];
            for (int i = 0; i < n; i++) {
                nums[i] = in.nextInt();
            }
            if (n <= 2) {
                System.out.println(1);
                return;
            }
            long tmp = nums[1] - nums[0];
            int ret = 1;
            for (int i = 2; i < n; i++) {
                int dev = nums[i] - nums[i-1];
                if (dev == 0) {
                    continue;
                }
                if (dev * tmp < 0) {
                    ret++;
                    tmp = 0;
                } else if (dev * tmp == 0) {
                    tmp = dev;
                } else {
                    tmp = dev;
                }
            }
            System.out.println(ret);
        }
    }
}
